<?php
error_reporting(0);
abstract class Helper_Pay_Abstract implements Helper_Pay_Interface {
	public $config; //配置
	/**
	 * 生成充值连接
	 *
	 * @param int $amount 付款金额
	 * @return string
	 */
	function generateRequestUrl($user, $amount,$return_url=null,$notify_url=null){
		return '';
	}
	/**
	 * 验证Get请求，通常为return url
	 * @return boolean
	 */
	function verifyGet(){
		return false;
	}
	/**
	 * 验证Post请求，通常为 notify url
	 *
	 * @return string
	 */
	function verifyPost(){
		return false;
	}
	/**
	 * 把资金注入账户
	 * @return boolean
	 */
	function charge(){
		return false;
	}
	
		
	public function __setconfig($assign){
		if(is_array($assign)) foreach($assign as $key=>$value){
			if(!(empty($key)||empty($value))){
				$this->config[$key]=$value;
			}
		}
	}
	//读到config 文件
	function _loadconfig($paytype=null){
		include_once(Q::ini("app_config/CONFIG_DIR")."/payinterface.php");
		if($payInterface&&isset($payInterface[$paytype])){
			return $payInterface[$paytype];
		}
		return false;
	}
	/****
	 * 组织 Url
	 */	 	
	function buildUrl($baseUrl,$params){
		$paramsstr="";
		if(is_array($params)) foreach($params as $k=>$v){
			$paramsstr.=$k."=".urlencode($v)."&";
		}
		$paramsstr=rtrim($paramsstr,'&');
		if(strpos($baseUrl,"?")==false){
			$url=$baseUrl."?".$paramsstr;
		}elseif(stripos($baseUrl,"?")==0||stripos($baseUrl,"&")==0){
			$url=$baseUrl.$paramsstr;
		}else{
			$url=$baseUrl."&".$paramsstr;
		}
		return $url;
	}
}

class Exception_Pay extends QException{}
